	PAGE	62,132
;
SFCODE	SEGMENT	PUBLIC
	ASSUME	CS:SFCODE
;
; UPDATE/REDUCE(MED RES) LINE FROM DS TO VB
; PASCAL : RDLUPD1(DSSEG,OSETBY,OSETBI,U,V,NPIX)
;
	PUBLIC	RDLUPD1
RDLUPD1	PROC	FAR
	PUSH	BP
	PUSH	DS
	MOV	BP,SP
	MOV	BX,[BP+8]
	MOV	DX,[BP+10]	;V
	MOV	DI,[BP+12]	;U
	MOV	CX,[BP+14]	;BIT OFFSET = 0,2
	MOV	SI,[BP+16]	;BYTE OFFSET
	MOV	AX,[BP+18]	;DISPLAY SPACE SEG
	MOV	DS,AX
	CMP	CX,0
	JNE	HALF2
HALF1:
	LODSB
	MOV	CL,6
	SHR	AL,CL
	MOV	CX,DI
	MOV	AH,12
	INT	10H
	DEC	BX
	JZ	LU1DONE
	DEC	SI
	INC	DI
HALF2:
	LODSB
	MOV	CL,2
	SHR	AL,CL
	MOV	CX,DI
	MOV	AH,12
	INT	10H
	DEC	BX
	JZ	LU1DONE
	INC	DI
	JMP	HALF1
LU1DONE:
	POP	DS
	POP	BP
	RET	12
RDLUPD1	ENDP
;
; UPDATE/REDUCE(HGH RES) LINE FROM DS TO VB
; PASCAL : RDLUPD2(DSSEG,OSETBY,RTYPE,OSETBI,U,V,NPIX)
;
	PUBLIC	RDLUPD2
RDLUPD2	PROC	FAR
	PUSH	BP
	PUSH	DS
	MOV	BP,SP
	MOV	BX,[BP+8]	;NPIX
	MOV	DX,[BP+10]	;V
	MOV	DI,[BP+12]	;U
	MOV	CX,[BP+14]	;BIT OFFSET = 0,2
	MOV	SI,[BP+18]	;BYTE OFFSET
	MOV	AX,[BP+20]	;DISPLAY SPACE SEG
	MOV	DS,AX
	MOV	AX,[BP+16]	;RTYPE
	MOV	BP,BX
	MOV	BH,AL
	CMP	CX,3
	JE	CX3
	CMP	CX,2
	JE	CX2
	CMP	CX,1
	JE	CX1
	MOV	BL,DS:[SI]
	MOV	CX,DI
	MOV	DI,0
	JMP	PIXMOV
CX1:
	MOV	BL,DS:[SI]
	MOV	CL,2
	SHL	BL,CL
	MOV	CX,DI
	MOV	DI,1
	JMP	PIXMOV
CX2:
	MOV	BL,DS:[SI]
	MOV	CL,4
	SHL	BL,CL
	MOV	CX,DI
	MOV	DI,2
	JMP	PIXMOV
CX3:
	MOV	BL,DS:[SI]
	MOV	CL,6
	SHL	BL,CL
	MOV	CX,DI
	MOV	DI,3
	JMP	PIXMOV
PIXMOV:
	MOV	AX,0
	MOV	AL,BL
	CMP	AX,0040H
	JGE	PIXON
	CMP	BH,3
	JE	RT3OF
	MOV	AL,0
	JMP	PIXRIT
RT3OF:
	MOV	AL,1
	JMP	PIXRIT
PIXON:
	CMP	BH,3
	JE	RT3ON
	MOV	AL,1
	JMP	PIXRIT
RT3ON:
	MOV	AL,0
PIXRIT:
	MOV	AH,12
	INT	10H
	DEC	BP
	JZ	LU2DONE
	INC	CX
	CMP	DI,3
	JE	NEXTBY
	INC	DI
	SHL	BL,1
	SHL	BL,1
	JMP	PIXMOV
NEXTBY:
	MOV	DI,0
	INC	SI
	MOV	BL,DS:[SI]
	JMP	PIXMOV
LU2DONE:
	POP	DS
	POP	BP
	RET	14
RDLUPD2	ENDP
;
SFCODE	ENDS
;
	END
